// 生成菜单
var menuItem = Vue
        .extend (
        {
            name : 'menu-item',
            props :
            {
	            item : {}
            },
            template : [
                    '<li>',
                    '<a v-if="item.type === 0" href="javascript:;">',
                    '<i v-if="item.icon != null" :class="item.icon"></i>',
                    '<span>{{item.name}}</span>',
                    '<i class="fa fa-angle-left pull-right"></i>',
                    '</a>',
                    '<ul v-if="item.type === 0" class="treeview-menu">',
                    '<menu-item :item="item" v-for="item in item.list"></menu-item>',
                    '</ul>',
                    '<a v-if="item.type === 1" :href="\'#\'+item.url"><i v-if="item.icon != null" :class="item.icon"></i><i v-else class="fa fa-circle-o"></i> {{item.name}}</a>',
                    '</li>'
            ].join ('')
        });

var shouye = Vue.extend (
{
    name : 'my-shouye',
    props:{
    	navtitleurl:['navtitleurl'],
    	navtitle:['navtitle']
    },
    template : [
            '<a :href="navtitleurl">{{navtitle}}</a>',
    ].join ('')
});

// Vue.component ('child',
// {
// // 声明 props
// props : [
// 'navTitle', 'msg'
// ],
// // prop 可以用在模板内
// // 可以用 `this.msg` 设置
// template : '<span>{{ navTitle }} {{msg}}</span>'
// })

// iframe自适应
$ (window).on ('resize', function ()
{
	var $content = $ ('.content');
	$content.height ($ (this).height () - 120);
	$content.find ('iframe').each (function ()
	{
		$ (this).height ($content.height ());
	});
}).resize ();

// 注册菜单组件
Vue.component ('menu-item', menuItem);

Vue.component ('my-shouye', shouye);

var vm = new Vue (
{
    el : '#rrapp',
    data :
    {
        user : {},
        menuList : {},
        main : "sys/main.html",
        password : '',
        newPassword : '',
        navTitle : "控制台",
        navTitleUrl : ""
    },
    methods :
    {
        
        getMenuList : function (event)
        {
	        $.getJSON ("sys/menu/user?_" + $.now (), function (r)
	        {
		        vm.menuList = r.data.menuList;
	        });
        },
        getUser : function ()
        {
	        $.getJSON ("sys/user/info?_" + $.now (), function (r)
	        {
		        vm.user = r.data.user;
	        });
        },
        updatePassword : function ()
        {
	        layer.open (
	        {
	            type : 1,
	            skin : 'layui-layer-molv',
	            title : "修改密码",
	            area : [
	                    '550px', '270px'
	            ],
	            shadeClose : false,
	            content : jQuery ("#passwordLayer"),
	            btn : [
	                    '修改', '取消'
	            ],
	            btn1 : function (index)
	            {
		            var data = "password=" + vm.password + "&newPassword=" + vm.newPassword;
		            $.ajax (
		            {
		                type : "POST",
		                url : "sys/user/password",
		                data : data,
		                dataType : "json",
		                success : function (result)
		                {
			                if (result.code == 0)
			                {
				                layer.close (index);
				                layer.alert ('修改成功', function (index)
				                {
					                location.reload ();
				                });
			                }
			                else
			                {
				                layer.alert (result.msg);
			                }
		                }
		            });
	            }
	        });
        }
    },
    created : function ()
    {
	    this.getMenuList ();
	    this.getUser ();
    },
    updated : function ()
    {
	    // 路由
	    var router = new Router ();
	    routerList (router, vm.menuList);
	    router.start ();
    }
});

function routerList (router, menuList)
{
	for ( var key in menuList)
	{
		var menu = menuList[key];
		if (menu.type == 0)
		{
			routerList (router, menu.list);
		}
		else if (menu.type == 1)
		{
			router.add ('#' + menu.url, function ()
			{
				var url = window.location.hash;
				// 替换iframe的url
				vm.main = url.replace ('#', '');
				
				// 导航菜单展开
				
				$ (".treeview-menu li").removeClass ("active");
				$ ("a[href='" + url + "']").parents ("li").addClass ("active");
				
				vm.navTitle = $ ("a[href='" + url + "']").text ();
				vm.navTitleUrl = url;
			});
		}
	}
}
